圏論入門 Haskellで計算する具体例(本)
1章
集合$ A,Bとの間に関係$ Rがある$ R \sub A \times B
特に関係$ Rが$ \forall a \in A . (\exists! b \in B \land a R b)なら写像(関数)と呼ぶ
つまり入力に対して必ず出力が存在して,しかもそれはただ一つである(二個とかはダメ)
弱いバージョン,$ \forall a \in A . (a R b \land a R b' \implies b = b')
入力に対して出力があるかはわからない
出力があるなら,それは一つである
$ f: A \mapsto B, g: B \mapsto C, h: C \mapsto D
$ (h \circ g)\circ f = h \circ (g \circ f)
部分関数についても合瀬の結合律が成り立つ
例えば各々の集合にundefinedとして$ \botを入れてやれば証明が楽になる
関係の合成
関係$ F \sub A \times B, G \sub B \times Cで,
$ G \circ F = \{ (x,z) \mid \exists y \in B. ((x,y) \in F \land (y,z) \in G) \}
つまり関係$ Fと$ Gを架橋するような要素$ yがあるならそれで連結したものをピックする
実数の加法群$ \R_{+}および正の実数の乗法群$ \R^{>0}_\times
対数関数$ \log: \R^{>0}_\times \mapsto \R_{+},この写像は群の準同型写像と呼ばれる $ \log(x y) = \log(x) + \log(y)
またこれには逆の写像が存在するので,同型写像と呼ばれる 指数関数$ \exp: \R_{+} \mapsto \R^{>0}_\times
$ e^{x + y} = e^x e^y